1. Field of the Invention
The present invention relates generally to an code generation apparatus in a data communication system, and in particular, to an apparatus and method for generating complementary turbo codes considering a characteristic of turbo codes in an ARQ (Automatic Repeat reQuest) packet communication system or a general communication system supporting ARQ scheme.
2. Description of the Related Art
In general, a system supporting a hybrid ARQ scheme (hereinafter, referred to as a “HARQ system”) uses a soft combining technique in order to improve its throughput, and the soft combining technique is divided into a packet diversity combining technique and a packet code combining technique. The two combining techniques are both called “soft packet combining”. Compared with the packet code combining technique, the packet diversity combining technique is sub-optimal in terms of performance, but frequently used because of its implementation simplicity when performance loss is not significant factor in system design.
The packet code combining technique is utilized in a packet transmission system in order to increase its throughput. The packet code combining technique transmits varying codes having a code rate R for each packet transmitted. Upon a receiver detecting an error in the received packet after decoding, the receiver stores the failed packet rather than discarding it, and then soft-combines the stored packet with a packet retransmitted by the transmitter. Here, different codes may be used for the retransmitted packet. That is, upon receiving N packets having a code rate R, the packet code combining technique converts the code rate to an effective code rate R/N using the packets before decoding, thereby to obtain a coding gain.
On the other hand, the packet diversity combining technique transmits the same codes having a code rate R for each packet transmitted. Upon detecting at a receiver an error in the received packet after decoding, the receiver stores the failed packet rather than discarding it, and then soft-combines the stored packet with a packet retransmitted from the transmitter. In all cases, the same codes are used for the retransmitted packet. Therefore, the packet diversity combining technique can be regarded as a Symbol Energy Averaging process in a random channel, and uses only an interference power reduction effect attained by averaging soft output of received symbols, and a diversity gain provided in a diversity channel by transmitting a plurality of symbols in a fading channel. In contrast, the packet code combining technique has a supplemental coding gain based on a code structure in addition to the diversity gain.
In the meanwhile, a turbo encoder generating the turbo code will be described hereinbelow. In the case of a turbo encoder with R=⅕, the turbo encoder generates information symbols X, first parity symbols Y0, Y0′ and second parity symbols Y1, Y1′ by encoding input information symbols. The turbo encoder is comprised of two constituent encoders and one interleaver. The first parity symbols Y0 and Y0′ are output from a first constituent encoder by encoding the input information symbols and the second parity symbols Y1 and Y1′ from a second constituent encoder by encoding the information symbols interleaved through the interleaver. In detail, the Y0 is a first row of parity symbols generated from a first constituent encoder, and the Y0′ is a second row of parity symbols generated from the first constituent encoder.
To date, most of the packet communication systems have used the packet diversity combining technique because of its implementation simplicity, and in particular, the synchronous IS-2000 system and the asynchronous UMTS system employ the packet diversity combining technique for these same reasons. However, most of the existing packet communication systems have used convolutional codes, and when using the convolutional codes having a low code rate R, the systems cannot provide a high diversity gain even though they use the packet diversity combining technique. That is, in the case where a system using R=⅓ convolutional codes supports the ARQ scheme, a performance difference between the packet diversity combining technique and the packet code combining technique is not considerable, and therefore the system uses the packet diversity combining technique. However, when using turbo codes as forward error correction codes (FEC), a different technique is required. This is because the turbo codes are designed to have their performance approach the Shannon Channel Capacity Limit by iterative decoding, and have an obvious performance difference according to the code rate, unlike the convolutional codes. It is therefore desirable to utilize the packet code combining technique in a packet communication system that uses turbo codes, in order to improve system performance.